package com.xadrez.view;

import com.xadrez.Principal;
import com.xadrez.controlador.MovimentoControlador;
import com.xadrez.ia.IA;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;

public class Tela extends JFrame implements MouseListener, MouseMotionListener {

    private JLayeredPane layeredPane;

    private Tela() {
        layeredPane = new JLayeredPane();
        getContentPane().add(layeredPane);
        layeredPane.setPreferredSize(TabuleiroView.getInstance().getQuadrados());
        layeredPane.addMouseListener(this);
        layeredPane.addMouseMotionListener(this);
        InicializadorView.inicializaTabuleiro(layeredPane);
    }

    //Monta a tela de jogo
    public static void roda() {
        JFrame frame = new Tela();
        frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        frame.pack();
        frame.setResizable(true);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    // <editor-fold defaultstate="collapsed" desc="MÉTODOS PARA MOVIMENTO DO MOUSE">
    @Override
    public void mousePressed(MouseEvent e) {
        //Movimenta a peça localizada na posição do mouse 'e'
        if (!(Principal.getJogadorDaVez() instanceof IA)) {
            MovimentoControlador.realizaMovimentoHumano(e);
        }
    }

    @Override
    public void mouseDragged(MouseEvent me) {
    }

    @Override
    public void mouseReleased(MouseEvent e) {
    }

    @Override
    public void mouseClicked(MouseEvent e) {
    }

    @Override
    public void mouseMoved(MouseEvent e) {
    }

    @Override
    public void mouseEntered(MouseEvent e) {
    }

    @Override
    public void mouseExited(MouseEvent e) {
    }
    // </editor-fold>
}
